package com.example.newYear.singleton;

//安全的懒汉式
//这个版本通过双重检查锁定（Double - Checked Locking）来实现线程安全的懒汉式单例。
//外层的if语句是为了减少同步块的执行次数，提高性能。内层的if语句是在同步块内部再次检查instance是否为null，以确保在多线程环境下只有一个实例被创建。
public class SafeLazySingleton {

    private static volatile SafeLazySingleton instance;
    private static final Object lock = new Object();
    private SafeLazySingleton(){}

    public static SafeLazySingleton getInstance() {
        if (instance == null) {
            synchronized (lock) {
                if (instance == null) {
                    instance = new SafeLazySingleton();
                }
            }
        }
        return instance;
    }
}
